--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
tests/backend/test_deep_links_security.py e5756d7ab065475a18acdcafc008a767fcff87e0 (e5756d7a) Text, 15.64 KB
T8b949e# SPDX-License-Identifier: 0BSD
T8b949e"""Security and fuzz tests for meshchatx://map and related lxm.ingest_uri deep links."""
Tff7b72import T7ee787asyncio
Tff7b72import T7ee787json
Tff7b72from T7ee787unittestT7ee787.T7ee787mock Tff7b72import Te6edf3MagicMockTb4b4b4, Te6edf3patch
Tff7b72from T7ee787urllibT7ee787.T7ee787parse Tff7b72import Te6edf3quoteTb4b4b4, Te6edf3urlencode
Tff7b72import T7ee787pytest
Tff7b72from T7ee787hypothesis Tff7b72import Te6edf3HealthCheckTb4b4b4, Te6edf3givenTb4b4b4, Te6edf3settings
Tff7b72from T7ee787hypothesis Tff7b72import Te6edf3strategies Tff7b72as Te6edf3st
Tff7b72def Td2a8ff_await_map_ingestTb4b4b4(Te6edf3mock_appTb4b4b4, Te6edf3uriTb4b4b4: Tffa657strTb4b4b4)Tb4b4b4:
Te6edf3mock_client Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3mock_clientTff7b72.Td2a8ffsend_str Tff7b72= Te6edf3MagicMockTb4b4b4(Te6edf3return_valueTff7b72=Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4)
Te6edf3mock_appTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffingest_lxm_uri Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Tff7b72async Tff7b72def Td2a8ff_runTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72with Te6edf3patchTb4b4b4(
Ta5d6ff"Ta5d6ffmeshchatx.meshchat.AsyncUtils.run_asyncTa5d6ff"Tb4b4b4,
Te6edf3side_effectTff7b72=Tff7b72lambda Te6edf3coroTb4b4b4: Te6edf3asyncioTff7b72.Td2a8ffcreate_taskTb4b4b4(Te6edf3coroTb4b4b4)Tb4b4b4,
Tb4b4b4)Tb4b4b4:
Tff7b72await Te6edf3mock_appTff7b72.Td2a8ffon_websocket_data_receivedTb4b4b4(
Te6edf3mock_clientTb4b4b4,
Tb4b4b4{Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6fflxm.ingest_uriTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffuriTa5d6ff"Tb4b4b4: Te6edf3uriTb4b4b4}Tb4b4b4,
Tb4b4b4)
Tff7b72await Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)
Te6edf3asyncioTff7b72.Td2a8ffget_event_loop_policyTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffget_event_loopTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffrun_until_completeTb4b4b4(Te6edf3_runTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72return Te6edf3mock_client
Tf0883e@pytestTff7b72.Td2a8ffmarkTff7b72.Td2a8ffasyncio
Tff7b72async Tff7b72def Td2a8fftest_lxm_ingest_map_uri_successTb4b4b4(Te6edf3mock_appTb4b4b4)Tb4b4b4:
Te6edf3mock_client Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3mock_clientTff7b72.Td2a8ffsend_str Tff7b72= Te6edf3MagicMockTb4b4b4(Te6edf3return_valueTff7b72=Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4)
Te6edf3mock_appTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffingest_lxm_uri Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Tff7b72with Te6edf3patchTb4b4b4(
Ta5d6ff"Ta5d6ffmeshchatx.meshchat.AsyncUtils.run_asyncTa5d6ff"Tb4b4b4,
Te6edf3side_effectTff7b72=Tff7b72lambda Te6edf3coroTb4b4b4: Te6edf3asyncioTff7b72.Td2a8ffcreate_taskTb4b4b4(Te6edf3coroTb4b4b4)Tb4b4b4,
Tb4b4b4)Tb4b4b4:
Tff7b72await Te6edf3mock_appTff7b72.Td2a8ffon_websocket_data_receivedTb4b4b4(
Te6edf3mock_clientTb4b4b4,
Tb4b4b4{
Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6fflxm.ingest_uriTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffuriTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffmeshchatx://map?lat=12.5&lon=-45&z=7&layers=discovered&label=HQTa5d6ff"Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tff7b72await Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)
Te6edf3mock_appTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffingest_lxm_uriTff7b72.Td2a8ffassert_not_calledTb4b4b4(Tb4b4b4)
Te6edf3mock_clientTff7b72.Td2a8ffsend_strTff7b72.Td2a8ffassert_called_onceTb4b4b4(Tb4b4b4)
Te6edf3payload Tff7b72= Te6edf3jsonTff7b72.Td2a8ffloadsTb4b4b4(Te6edf3mock_clientTff7b72.Td2a8ffsend_strTff7b72.Td2a8ffcall_argsTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6fflxm.ingest_uri.resultTa5d6ff"
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffstatusTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffsuccessTa5d6ff"
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffingest_typeTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffmap_viewTa5d6ff"
Te6edf3mq Tff7b72= Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffmap_queryTa5d6ff"Tb4b4b4]
Tff7b72assert Te6edf3mqTb4b4b4[Ta5d6ff"Ta5d6fflatTa5d6ff"Tb4b4b4] Tff7b72== T79c0ff12.5
Tff7b72assert Te6edf3mqTb4b4b4[Ta5d6ff"Ta5d6fflonTa5d6ff"Tb4b4b4] Tff7b72== Tff7b72-T79c0ff45.0
Tff7b72assert Te6edf3mqTb4b4b4[Ta5d6ff"Ta5d6ffzoomTa5d6ff"Tb4b4b4] Tff7b72== T79c0ff7
Tff7b72assert Te6edf3mqTb4b4b4[Ta5d6ff"Ta5d6fflayersTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffdiscoveredTa5d6ff"
Tff7b72assert Te6edf3mqTb4b4b4[Ta5d6ff"Ta5d6fflabelTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffHQTa5d6ff"
Tf0883e@pytestTff7b72.Td2a8ffmarkTff7b72.Td2a8ffasyncio
Tff7b72async Tff7b72def Td2a8fftest_lxm_ingest_map_meshchat_aliasTb4b4b4(Te6edf3mock_appTb4b4b4)Tb4b4b4:
Te6edf3mock_client Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3mock_clientTff7b72.Td2a8ffsend_str Tff7b72= Te6edf3MagicMockTb4b4b4(Te6edf3return_valueTff7b72=Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4)
Te6edf3mock_appTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffingest_lxm_uri Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Tff7b72with Te6edf3patchTb4b4b4(
Ta5d6ff"Ta5d6ffmeshchatx.meshchat.AsyncUtils.run_asyncTa5d6ff"Tb4b4b4,
Te6edf3side_effectTff7b72=Tff7b72lambda Te6edf3coroTb4b4b4: Te6edf3asyncioTff7b72.Td2a8ffcreate_taskTb4b4b4(Te6edf3coroTb4b4b4)Tb4b4b4,
Tb4b4b4)Tb4b4b4:
Tff7b72await Te6edf3mock_appTff7b72.Td2a8ffon_websocket_data_receivedTb4b4b4(
Te6edf3mock_clientTb4b4b4,
Tb4b4b4{Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6fflxm.ingest_uriTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffuriTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffmeshchat://map?lat=0&lon=1&z=2Ta5d6ff"Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tff7b72await Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)
Te6edf3payload Tff7b72= Te6edf3jsonTff7b72.Td2a8ffloadsTb4b4b4(Te6edf3mock_clientTff7b72.Td2a8ffsend_strTff7b72.Td2a8ffcall_argsTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffingest_typeTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffmap_viewTa5d6ff"
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffmap_queryTa5d6ff"Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6fflatTa5d6ff"Tb4b4b4] Tff7b72== T79c0ff0.0
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffmap_queryTa5d6ff"Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6fflonTa5d6ff"Tb4b4b4] Tff7b72== T79c0ff1.0
Tf0883e@pytestTff7b72.Td2a8ffmarkTff7b72.Td2a8ffasyncio
Tff7b72async Tff7b72def Td2a8fftest_lxm_ingest_map_zoom_clampedTb4b4b4(Te6edf3mock_appTb4b4b4)Tb4b4b4:
Te6edf3mock_client Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3mock_clientTff7b72.Td2a8ffsend_str Tff7b72= Te6edf3MagicMockTb4b4b4(Te6edf3return_valueTff7b72=Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4)
Te6edf3mock_appTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffingest_lxm_uri Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Tff7b72with Te6edf3patchTb4b4b4(
Ta5d6ff"Ta5d6ffmeshchatx.meshchat.AsyncUtils.run_asyncTa5d6ff"Tb4b4b4,
Te6edf3side_effectTff7b72=Tff7b72lambda Te6edf3coroTb4b4b4: Te6edf3asyncioTff7b72.Td2a8ffcreate_taskTb4b4b4(Te6edf3coroTb4b4b4)Tb4b4b4,
Tb4b4b4)Tb4b4b4:
Tff7b72await Te6edf3mock_appTff7b72.Td2a8ffon_websocket_data_receivedTb4b4b4(
Te6edf3mock_clientTb4b4b4,
Tb4b4b4{Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6fflxm.ingest_uriTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffuriTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffmeshchatx://map?lat=0&lon=0&z=999Ta5d6ff"Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tff7b72await Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)
Te6edf3payload Tff7b72= Te6edf3jsonTff7b72.Td2a8ffloadsTb4b4b4(Te6edf3mock_clientTff7b72.Td2a8ffsend_strTff7b72.Td2a8ffcall_argsTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffmap_queryTa5d6ff"Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ffzoomTa5d6ff"Tb4b4b4] Tff7b72== T79c0ff22
Tf0883e@pytestTff7b72.Td2a8ffmarkTff7b72.Td2a8ffasyncio
Tff7b72async Tff7b72def Td2a8fftest_lxm_ingest_map_invalid_lat_lonTb4b4b4(Te6edf3mock_appTb4b4b4)Tb4b4b4:
Te6edf3mock_client Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3mock_clientTff7b72.Td2a8ffsend_str Tff7b72= Te6edf3MagicMockTb4b4b4(Te6edf3return_valueTff7b72=Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4)
Te6edf3mock_appTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffingest_lxm_uri Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Tff7b72with Te6edf3patchTb4b4b4(
Ta5d6ff"Ta5d6ffmeshchatx.meshchat.AsyncUtils.run_asyncTa5d6ff"Tb4b4b4,
Te6edf3side_effectTff7b72=Tff7b72lambda Te6edf3coroTb4b4b4: Te6edf3asyncioTff7b72.Td2a8ffcreate_taskTb4b4b4(Te6edf3coroTb4b4b4)Tb4b4b4,
Tb4b4b4)Tb4b4b4:
Tff7b72await Te6edf3mock_appTff7b72.Td2a8ffon_websocket_data_receivedTb4b4b4(
Te6edf3mock_clientTb4b4b4,
Tb4b4b4{Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6fflxm.ingest_uriTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffuriTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffmeshchatx://map?lat=x&lon=1&z=3Ta5d6ff"Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tff7b72await Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)
Te6edf3payload Tff7b72= Te6edf3jsonTff7b72.Td2a8ffloadsTb4b4b4(Te6edf3mock_clientTff7b72.Td2a8ffsend_strTff7b72.Td2a8ffcall_argsTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffstatusTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6fferrorTa5d6ff"
Tff7b72assert Ta5d6ff"Ta5d6ffmapTa5d6ff" Tff7b72in Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffmessageTa5d6ff"Tb4b4b4]Tff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)
Te6edf3mock_appTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffingest_lxm_uriTff7b72.Td2a8ffassert_not_calledTb4b4b4(Tb4b4b4)
Tf0883e@pytestTff7b72.Td2a8ffmarkTff7b72.Td2a8ffparametrizeTb4b4b4(
Ta5d6ff"Ta5d6fflayers,labelTa5d6ff"Tb4b4b4,
Tb4b4b4[
Tb4b4b4(Ta5d6ff"Ta5d6ff<script>alert(1)</script>Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffsafeTa5d6ff"Tb4b4b4)Tb4b4b4,
Tb4b4b4(Ta5d6ff"Ta5d6ffdiscoveredTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff<img src=x onerror=alert(1)>Ta5d6ff"Tb4b4b4)Tb4b4b4,
Tb4b4b4(Ta5d6ff"Ta5d6ffjavascript:alert(1)Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffpingTa5d6ff"Tb4b4b4)Tb4b4b4,
Tb4b4b4(Ta5d6ff"Ta5d6ff'Ta5d6ff;DROP TABLE map;--Ta5d6ff"Tb4b4b4, Ta5d6ff'Ta5d6ff"Ta5d6ff><svg/onload=alert(1)>Ta5d6ff'Tb4b4b4)Tb4b4b4,
Tb4b4b4(Ta5d6ff"Ta5d6ffaTa5d6ff" Tff7b72* T79c0ff4000Tb4b4b4, Ta5d6ff"Ta5d6ffbTa5d6ff" Tff7b72* T79c0ff4000Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4,
Tb4b4b4)
Tf0883e@pytestTff7b72.Td2a8ffmarkTff7b72.Td2a8ffasyncio
Tff7b72async Tff7b72def Td2a8fftest_lxm_ingest_map_xss_like_strings_roundtrip_jsonTb4b4b4(
Te6edf3mock_appTb4b4b4,
Te6edf3layersTb4b4b4,
Te6edf3labelTb4b4b4,
Tb4b4b4)Tb4b4b4:
Te6edf3q Tff7b72= Te6edf3urlencodeTb4b4b4(
Tb4b4b4{Ta5d6ff"Ta5d6fflatTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ff1Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6fflonTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ff2Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffzTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ff4Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6fflayersTa5d6ff"Tb4b4b4: Te6edf3layersTb4b4b4, Ta5d6ff"Ta5d6fflabelTa5d6ff"Tb4b4b4: Te6edf3labelTb4b4b4}Tb4b4b4,
Te6edf3quote_viaTff7b72=Te6edf3quoteTb4b4b4,
Tb4b4b4)
Te6edf3uri Tff7b72= Ta5d6fffTa5d6ff"Ta5d6ffmeshchatx://map?Tffd700{Te6edf3qTffd700}Ta5d6ff"
Te6edf3mock_client Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3mock_clientTff7b72.Td2a8ffsend_str Tff7b72= Te6edf3MagicMockTb4b4b4(Te6edf3return_valueTff7b72=Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4)
Te6edf3mock_appTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffingest_lxm_uri Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Tff7b72with Te6edf3patchTb4b4b4(
Ta5d6ff"Ta5d6ffmeshchatx.meshchat.AsyncUtils.run_asyncTa5d6ff"Tb4b4b4,
Te6edf3side_effectTff7b72=Tff7b72lambda Te6edf3coroTb4b4b4: Te6edf3asyncioTff7b72.Td2a8ffcreate_taskTb4b4b4(Te6edf3coroTb4b4b4)Tb4b4b4,
Tb4b4b4)Tb4b4b4:
Tff7b72await Te6edf3mock_appTff7b72.Td2a8ffon_websocket_data_receivedTb4b4b4(
Te6edf3mock_clientTb4b4b4,
Tb4b4b4{Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6fflxm.ingest_uriTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffuriTa5d6ff"Tb4b4b4: Te6edf3uriTb4b4b4}Tb4b4b4,
Tb4b4b4)
Tff7b72await Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)
Te6edf3raw Tff7b72= Te6edf3mock_clientTff7b72.Td2a8ffsend_strTff7b72.Td2a8ffcall_argsTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[T79c0ff0Tb4b4b4]
Te6edf3payload Tff7b72= Te6edf3jsonTff7b72.Td2a8ffloadsTb4b4b4(Te6edf3rawTb4b4b4)
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffstatusTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffsuccessTa5d6ff"
Te6edf3mq Tff7b72= Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffmap_queryTa5d6ff"Tb4b4b4]
Tff7b72assert Te6edf3mqTb4b4b4[Ta5d6ff"Ta5d6fflayersTa5d6ff"Tb4b4b4] Tff7b72== Te6edf3layersTff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4)
Tff7b72assert Te6edf3mqTb4b4b4[Ta5d6ff"Ta5d6fflabelTa5d6ff"Tb4b4b4] Tff7b72== Te6edf3labelTff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4)
Te6edf3jsonTff7b72.Td2a8ffloadsTb4b4b4(Te6edf3rawTb4b4b4)
Tf0883e@settingsTb4b4b4(
Te6edf3suppress_health_checkTff7b72=Tb4b4b4[Te6edf3HealthCheckTff7b72.Td2a8fffunction_scoped_fixtureTb4b4b4]Tb4b4b4,
Te6edf3deadlineTff7b72=Tff7b72NoneTb4b4b4,
Te6edf3max_examplesTff7b72=T79c0ff80Tb4b4b4,
Tb4b4b4)
Tf0883e@givenTb4b4b4(
Te6edf3tailTff7b72=Te6edf3stTff7b72.Td2a8fftextTb4b4b4(Te6edf3min_sizeTff7b72=T79c0ff0Tb4b4b4, Te6edf3max_sizeTff7b72=T79c0ff800Tb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72def Td2a8fftest_meshchatx_map_query_tail_fuzzingTb4b4b4(Te6edf3mock_appTb4b4b4, Te6edf3tailTb4b4b4)Tb4b4b4:
Te6edf3uri Tff7b72= Ta5d6ff"Ta5d6ffmeshchatx://map?Ta5d6ff" Tff7b72+ Te6edf3tail
Te6edf3mock_client Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3mock_clientTff7b72.Td2a8ffsend_str Tff7b72= Te6edf3MagicMockTb4b4b4(Te6edf3return_valueTff7b72=Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4)
Te6edf3mock_appTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffingest_lxm_uri Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3loop Tff7b72= Te6edf3asyncioTff7b72.Td2a8ffnew_event_loopTb4b4b4(Tb4b4b4)
Te6edf3asyncioTff7b72.Td2a8ffset_event_loopTb4b4b4(Te6edf3loopTb4b4b4)
Tff7b72tryTb4b4b4:
Tff7b72async Tff7b72def Td2a8ff_runTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72with Te6edf3patchTb4b4b4(
Ta5d6ff"Ta5d6ffmeshchatx.meshchat.AsyncUtils.run_asyncTa5d6ff"Tb4b4b4,
Te6edf3side_effectTff7b72=Tff7b72lambda Te6edf3coroTb4b4b4: Te6edf3asyncioTff7b72.Td2a8ffcreate_taskTb4b4b4(Te6edf3coroTb4b4b4)Tb4b4b4,
Tb4b4b4)Tb4b4b4:
Tff7b72await Te6edf3mock_appTff7b72.Td2a8ffon_websocket_data_receivedTb4b4b4(
Te6edf3mock_clientTb4b4b4,
Tb4b4b4{Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6fflxm.ingest_uriTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffuriTa5d6ff"Tb4b4b4: Te6edf3uriTb4b4b4}Tb4b4b4,
Tb4b4b4)
Tff7b72await Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)
Te6edf3loopTff7b72.Td2a8ffrun_until_completeTb4b4b4(Te6edf3_runTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72finallyTb4b4b4:
Te6edf3loopTff7b72.Td2a8ffcloseTb4b4b4(Tb4b4b4)
Te6edf3mock_clientTff7b72.Td2a8ffsend_strTff7b72.Td2a8ffassert_calledTb4b4b4(Tb4b4b4)
Te6edf3raw Tff7b72= Te6edf3mock_clientTff7b72.Td2a8ffsend_strTff7b72.Td2a8ffcall_argsTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[T79c0ff0Tb4b4b4]
Tff7b72tryTb4b4b4:
Te6edf3payload Tff7b72= Te6edf3jsonTff7b72.Td2a8ffloadsTb4b4b4(Te6edf3rawTb4b4b4)
Tff7b72except Te6edf3jsonTff7b72.Td2a8ffJSONDecodeErrorTb4b4b4:
Tff7b72return
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6fflxm.ingest_uri.resultTa5d6ff"
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffstatusTa5d6ff"Tb4b4b4] Tff7b72in Tb4b4b4(Ta5d6ff"Ta5d6ffsuccessTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6fferrorTa5d6ff"Tb4b4b4)
Tf0883e@settingsTb4b4b4(
Te6edf3suppress_health_checkTff7b72=Tb4b4b4[Te6edf3HealthCheckTff7b72.Td2a8fffunction_scoped_fixtureTb4b4b4]Tb4b4b4,
Te6edf3deadlineTff7b72=Tff7b72NoneTb4b4b4,
Te6edf3max_examplesTff7b72=T79c0ff60Tb4b4b4,
Tb4b4b4)
Tf0883e@givenTb4b4b4(
Te6edf3latTff7b72=Te6edf3stTff7b72.Td2a8fffloatsTb4b4b4(
Te6edf3min_valueTff7b72=Tff7b72-T79c0ff90.0Tb4b4b4,
Te6edf3max_valueTff7b72=T79c0ff90.0Tb4b4b4,
Te6edf3allow_nanTff7b72=Tff7b72FalseTb4b4b4,
Te6edf3allow_infinityTff7b72=Tff7b72FalseTb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3lonTff7b72=Te6edf3stTff7b72.Td2a8fffloatsTb4b4b4(
Te6edf3min_valueTff7b72=Tff7b72-T79c0ff180.0Tb4b4b4,
Te6edf3max_valueTff7b72=T79c0ff180.0Tb4b4b4,
Te6edf3allow_nanTff7b72=Tff7b72FalseTb4b4b4,
Te6edf3allow_infinityTff7b72=Tff7b72FalseTb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3zTff7b72=Te6edf3stTff7b72.Td2a8ffintegersTb4b4b4(Te6edf3min_valueTff7b72=Tff7b72-T79c0ff50Tb4b4b4, Te6edf3max_valueTff7b72=T79c0ff50Tb4b4b4)Tb4b4b4,
Te6edf3extraTff7b72=Te6edf3stTff7b72.Td2a8ffdictionariesTb4b4b4(
Te6edf3keysTff7b72=Te6edf3stTff7b72.Td2a8fftextTb4b4b4(Te6edf3max_sizeTff7b72=T79c0ff8Tb4b4b4)Tb4b4b4,
Te6edf3valuesTff7b72=Te6edf3stTff7b72.Td2a8fftextTb4b4b4(Te6edf3max_sizeTff7b72=T79c0ff40Tb4b4b4)Tb4b4b4,
Te6edf3max_sizeTff7b72=T79c0ff6Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72def Td2a8fftest_meshchatx_map_numeric_params_fuzzingTb4b4b4(Te6edf3mock_appTb4b4b4, Te6edf3latTb4b4b4, Te6edf3lonTb4b4b4, Te6edf3zTb4b4b4, Te6edf3extraTb4b4b4)Tb4b4b4:
Te6edf3q Tff7b72= Tb4b4b4{Ta5d6ff"Ta5d6fflatTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3latTb4b4b4)Tb4b4b4, Ta5d6ff"Ta5d6fflonTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3lonTb4b4b4)Tb4b4b4, Ta5d6ff"Ta5d6ffzTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3zTb4b4b4)Tb4b4b4}
Tff7b72for Te6edf3kTb4b4b4, Te6edf3v Tff7b72in Te6edf3extraTff7b72.Td2a8ffitemsTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3k Tff7b72and Te6edf3k Tff7b72not Tff7b72in Te6edf3qTb4b4b4:
Te6edf3qTb4b4b4[Te6edf3kTb4b4b4] Tff7b72= Te6edf3v
Te6edf3uri Tff7b72= Ta5d6ff"Ta5d6ffmeshchatx://map?Ta5d6ff" Tff7b72+ Te6edf3urlencodeTb4b4b4(Te6edf3qTb4b4b4, Te6edf3quote_viaTff7b72=Te6edf3quoteTb4b4b4)
Te6edf3mock_client Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3mock_clientTff7b72.Td2a8ffsend_str Tff7b72= Te6edf3MagicMockTb4b4b4(Te6edf3return_valueTff7b72=Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4)
Te6edf3mock_appTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffingest_lxm_uri Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3loop Tff7b72= Te6edf3asyncioTff7b72.Td2a8ffnew_event_loopTb4b4b4(Tb4b4b4)
Te6edf3asyncioTff7b72.Td2a8ffset_event_loopTb4b4b4(Te6edf3loopTb4b4b4)
Tff7b72tryTb4b4b4:
Tff7b72async Tff7b72def Td2a8ff_runTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72with Te6edf3patchTb4b4b4(
Ta5d6ff"Ta5d6ffmeshchatx.meshchat.AsyncUtils.run_asyncTa5d6ff"Tb4b4b4,
Te6edf3side_effectTff7b72=Tff7b72lambda Te6edf3coroTb4b4b4: Te6edf3asyncioTff7b72.Td2a8ffcreate_taskTb4b4b4(Te6edf3coroTb4b4b4)Tb4b4b4,
Tb4b4b4)Tb4b4b4:
Tff7b72await Te6edf3mock_appTff7b72.Td2a8ffon_websocket_data_receivedTb4b4b4(
Te6edf3mock_clientTb4b4b4,
Tb4b4b4{Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6fflxm.ingest_uriTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffuriTa5d6ff"Tb4b4b4: Te6edf3uriTb4b4b4}Tb4b4b4,
Tb4b4b4)
Tff7b72await Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)
Te6edf3loopTff7b72.Td2a8ffrun_until_completeTb4b4b4(Te6edf3_runTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72finallyTb4b4b4:
Te6edf3loopTff7b72.Td2a8ffcloseTb4b4b4(Tb4b4b4)
Te6edf3payload Tff7b72= Te6edf3jsonTff7b72.Td2a8ffloadsTb4b4b4(Te6edf3mock_clientTff7b72.Td2a8ffsend_strTff7b72.Td2a8ffcall_argsTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6fflxm.ingest_uri.resultTa5d6ff"
Tff7b72if Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffstatusTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffsuccessTa5d6ff"Tb4b4b4:
Te6edf3mq Tff7b72= Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffmap_queryTa5d6ff"Tb4b4b4]
Tff7b72assert Tffa657isinstanceTb4b4b4(Te6edf3mqTb4b4b4[Ta5d6ff"Ta5d6fflatTa5d6ff"Tb4b4b4]Tb4b4b4, Tffa657floatTb4b4b4)
Tff7b72assert Tffa657isinstanceTb4b4b4(Te6edf3mqTb4b4b4[Ta5d6ff"Ta5d6fflonTa5d6ff"Tb4b4b4]Tb4b4b4, Tffa657floatTb4b4b4)
Tff7b72assert Tffa657isinstanceTb4b4b4(Te6edf3mqTb4b4b4[Ta5d6ff"Ta5d6ffzoomTa5d6ff"Tb4b4b4]Tb4b4b4, Tffa657intTb4b4b4)
Tff7b72assert T79c0ff0 Tff7b72<Tff7b72= Te6edf3mqTb4b4b4[Ta5d6ff"Ta5d6ffzoomTa5d6ff"Tb4b4b4] Tff7b72<Tff7b72= T79c0ff22
Tf0883e@pytestTff7b72.Td2a8ffmarkTff7b72.Td2a8ffasyncio
Tff7b72async Tff7b72def Td2a8fftest_lxm_ingest_docs_uri_with_reticulumTb4b4b4(Te6edf3mock_appTb4b4b4)Tb4b4b4:
Te6edf3mock_client Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3mock_clientTff7b72.Td2a8ffsend_str Tff7b72= Te6edf3MagicMockTb4b4b4(Te6edf3return_valueTff7b72=Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4)
Te6edf3mock_appTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffingest_lxm_uri Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Tff7b72with Te6edf3patchTb4b4b4(
Ta5d6ff"Ta5d6ffmeshchatx.meshchat.AsyncUtils.run_asyncTa5d6ff"Tb4b4b4,
Te6edf3side_effectTff7b72=Tff7b72lambda Te6edf3coroTb4b4b4: Te6edf3asyncioTff7b72.Td2a8ffcreate_taskTb4b4b4(Te6edf3coroTb4b4b4)Tb4b4b4,
Tb4b4b4)Tb4b4b4:
Tff7b72await Te6edf3mock_appTff7b72.Td2a8ffon_websocket_data_receivedTb4b4b4(
Te6edf3mock_clientTb4b4b4,
Tb4b4b4{
Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6fflxm.ingest_uriTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffuriTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffmeshchatx://docs?reticulum=manual/interfaces.htmlTffd700%23sTa5d6ffectionTa5d6ff"Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tff7b72await Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)
Te6edf3mock_appTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffingest_lxm_uriTff7b72.Td2a8ffassert_not_calledTb4b4b4(Tb4b4b4)
Te6edf3payload Tff7b72= Te6edf3jsonTff7b72.Td2a8ffloadsTb4b4b4(Te6edf3mock_clientTff7b72.Td2a8ffsend_strTff7b72.Td2a8ffcall_argsTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6fflxm.ingest_uri.resultTa5d6ff"
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffstatusTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffsuccessTa5d6ff"
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffingest_typeTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffdocs_viewTa5d6ff"
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffdocs_queryTa5d6ff"Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ffreticulumTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffmanual/interfaces.html#sectionTa5d6ff"
Tf0883e@pytestTff7b72.Td2a8ffmarkTff7b72.Td2a8ffasyncio
Tff7b72async Tff7b72def Td2a8fftest_lxm_ingest_docs_uri_meshchat_aliasTb4b4b4(Te6edf3mock_appTb4b4b4)Tb4b4b4:
Te6edf3mock_client Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3mock_clientTff7b72.Td2a8ffsend_str Tff7b72= Te6edf3MagicMockTb4b4b4(Te6edf3return_valueTff7b72=Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4)
Te6edf3mock_appTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffingest_lxm_uri Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Tff7b72with Te6edf3patchTb4b4b4(
Ta5d6ff"Ta5d6ffmeshchatx.meshchat.AsyncUtils.run_asyncTa5d6ff"Tb4b4b4,
Te6edf3side_effectTff7b72=Tff7b72lambda Te6edf3coroTb4b4b4: Te6edf3asyncioTff7b72.Td2a8ffcreate_taskTb4b4b4(Te6edf3coroTb4b4b4)Tb4b4b4,
Tb4b4b4)Tb4b4b4:
Tff7b72await Te6edf3mock_appTff7b72.Td2a8ffon_websocket_data_receivedTb4b4b4(
Te6edf3mock_clientTb4b4b4,
Tb4b4b4{Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6fflxm.ingest_uriTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffuriTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffmeshchat://docs?path=manual/index.htmlTa5d6ff"Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tff7b72await Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)
Te6edf3payload Tff7b72= Te6edf3jsonTff7b72.Td2a8ffloadsTb4b4b4(Te6edf3mock_clientTff7b72.Td2a8ffsend_strTff7b72.Td2a8ffcall_argsTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffingest_typeTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffdocs_viewTa5d6ff"
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffdocs_queryTa5d6ff"Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ffreticulumTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffmanual/index.htmlTa5d6ff"
Tf0883e@pytestTff7b72.Td2a8ffmarkTff7b72.Td2a8ffasyncio
Tff7b72async Tff7b72def Td2a8fftest_lxm_ingest_docs_uri_open_indexTb4b4b4(Te6edf3mock_appTb4b4b4)Tb4b4b4:
Te6edf3mock_client Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3mock_clientTff7b72.Td2a8ffsend_str Tff7b72= Te6edf3MagicMockTb4b4b4(Te6edf3return_valueTff7b72=Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4)
Te6edf3mock_appTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffingest_lxm_uri Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Tff7b72with Te6edf3patchTb4b4b4(
Ta5d6ff"Ta5d6ffmeshchatx.meshchat.AsyncUtils.run_asyncTa5d6ff"Tb4b4b4,
Te6edf3side_effectTff7b72=Tff7b72lambda Te6edf3coroTb4b4b4: Te6edf3asyncioTff7b72.Td2a8ffcreate_taskTb4b4b4(Te6edf3coroTb4b4b4)Tb4b4b4,
Tb4b4b4)Tb4b4b4:
Tff7b72await Te6edf3mock_appTff7b72.Td2a8ffon_websocket_data_receivedTb4b4b4(
Te6edf3mock_clientTb4b4b4,
Tb4b4b4{Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6fflxm.ingest_uriTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffuriTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffmeshchatx://docsTa5d6ff"Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tff7b72await Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)
Te6edf3payload Tff7b72= Te6edf3jsonTff7b72.Td2a8ffloadsTb4b4b4(Te6edf3mock_clientTff7b72.Td2a8ffsend_strTff7b72.Td2a8ffcall_argsTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffingest_typeTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffdocs_viewTa5d6ff"
Tff7b72assert Ta5d6ff"Ta5d6ffdocs_queryTa5d6ff" Tff7b72not Tff7b72in Te6edf3payload
Tf0883e@pytestTff7b72.Td2a8ffmarkTff7b72.Td2a8ffasyncio
Tff7b72async Tff7b72def Td2a8fftest_lxm_ingest_docs_hostname_spoof_not_docs_viewTb4b4b4(Te6edf3mock_appTb4b4b4)Tb4b4b4:
Te6edf3mock_client Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3mock_clientTff7b72.Td2a8ffsend_str Tff7b72= Te6edf3MagicMockTb4b4b4(Te6edf3return_valueTff7b72=Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4)
Te6edf3mock_appTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffingest_lxm_uri Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Tff7b72with Te6edf3patchTb4b4b4(
Ta5d6ff"Ta5d6ffmeshchatx.meshchat.AsyncUtils.run_asyncTa5d6ff"Tb4b4b4,
Te6edf3side_effectTff7b72=Tff7b72lambda Te6edf3coroTb4b4b4: Te6edf3asyncioTff7b72.Td2a8ffcreate_taskTb4b4b4(Te6edf3coroTb4b4b4)Tb4b4b4,
Tb4b4b4)Tb4b4b4:
Tff7b72await Te6edf3mock_appTff7b72.Td2a8ffon_websocket_data_receivedTb4b4b4(
Te6edf3mock_clientTb4b4b4,
Tb4b4b4{Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6fflxm.ingest_uriTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffuriTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffmeshchatx://docs-foo?reticulum=evilTa5d6ff"Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tff7b72await Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)
Te6edf3payload Tff7b72= Te6edf3jsonTff7b72.Td2a8ffloadsTb4b4b4(Te6edf3mock_clientTff7b72.Td2a8ffsend_strTff7b72.Td2a8ffcall_argsTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)
Tff7b72assert Te6edf3payloadTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffingest_typeTa5d6ff"Tb4b4b4) Tff7b72!= Ta5d6ff"Ta5d6ffdocs_viewTa5d6ff"
Tff7b72assert Te6edf3payloadTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffingest_typeTa5d6ff"Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffunknown_meshchatxTa5d6ff"
Tff7b72assert Te6edf3payloadTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffstatusTa5d6ff"Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6fferrorTa5d6ff"
Te6edf3mock_appTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffingest_lxm_uriTff7b72.Td2a8ffassert_not_calledTb4b4b4(Tb4b4b4)
Tf0883e@pytestTff7b72.Td2a8ffmarkTff7b72.Td2a8ffparametrizeTb4b4b4(
Ta5d6ff"Ta5d6ffrelTa5d6ff"Tb4b4b4,
Tb4b4b4[
Ta5d6ff"Ta5d6ff<script>alert(1)</script>Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ff'Ta5d6ff; DROP TABLE docs;--Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffaTa5d6ff" Tff7b72* T79c0ff8000Tb4b4b4,
Tb4b4b4]Tb4b4b4,
Tb4b4b4)
Tf0883e@pytestTff7b72.Td2a8ffmarkTff7b72.Td2a8ffasyncio
Tff7b72async Tff7b72def Td2a8fftest_lxm_ingest_docs_opaque_reticulum_roundtripTb4b4b4(Te6edf3mock_appTb4b4b4, Te6edf3relTb4b4b4)Tb4b4b4:
Te6edf3mock_client Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3mock_clientTff7b72.Td2a8ffsend_str Tff7b72= Te6edf3MagicMockTb4b4b4(Te6edf3return_valueTff7b72=Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4)
Te6edf3mock_appTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffingest_lxm_uri Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3q Tff7b72= Te6edf3urlencodeTb4b4b4(Tb4b4b4{Ta5d6ff"Ta5d6ffreticulumTa5d6ff"Tb4b4b4: Te6edf3relTb4b4b4}Tb4b4b4, Te6edf3quote_viaTff7b72=Te6edf3quoteTb4b4b4)
Te6edf3uri Tff7b72= Ta5d6fffTa5d6ff"Ta5d6ffmeshchatx://docs?Tffd700{Te6edf3qTffd700}Ta5d6ff"
Tff7b72with Te6edf3patchTb4b4b4(
Ta5d6ff"Ta5d6ffmeshchatx.meshchat.AsyncUtils.run_asyncTa5d6ff"Tb4b4b4,
Te6edf3side_effectTff7b72=Tff7b72lambda Te6edf3coroTb4b4b4: Te6edf3asyncioTff7b72.Td2a8ffcreate_taskTb4b4b4(Te6edf3coroTb4b4b4)Tb4b4b4,
Tb4b4b4)Tb4b4b4:
Tff7b72await Te6edf3mock_appTff7b72.Td2a8ffon_websocket_data_receivedTb4b4b4(
Te6edf3mock_clientTb4b4b4,
Tb4b4b4{Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6fflxm.ingest_uriTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffuriTa5d6ff"Tb4b4b4: Te6edf3uriTb4b4b4}Tb4b4b4,
Tb4b4b4)
Tff7b72await Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)
Te6edf3payload Tff7b72= Te6edf3jsonTff7b72.Td2a8ffloadsTb4b4b4(Te6edf3mock_clientTff7b72.Td2a8ffsend_strTff7b72.Td2a8ffcall_argsTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffingest_typeTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffdocs_viewTa5d6ff"
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffdocs_queryTa5d6ff"Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ffreticulumTa5d6ff"Tb4b4b4] Tff7b72== Te6edf3rel
Tf0883e@settingsTb4b4b4(
Te6edf3suppress_health_checkTff7b72=Tb4b4b4[Te6edf3HealthCheckTff7b72.Td2a8fffunction_scoped_fixtureTb4b4b4]Tb4b4b4,
Te6edf3deadlineTff7b72=Tff7b72NoneTb4b4b4,
Te6edf3max_examplesTff7b72=T79c0ff80Tb4b4b4,
Tb4b4b4)
Tf0883e@givenTb4b4b4(Te6edf3tailTff7b72=Te6edf3stTff7b72.Td2a8fftextTb4b4b4(Te6edf3max_sizeTff7b72=T79c0ff800Tb4b4b4)Tb4b4b4)
Tff7b72def Td2a8fftest_meshchatx_docs_query_tail_fuzzingTb4b4b4(Te6edf3mock_appTb4b4b4, Te6edf3tailTb4b4b4)Tb4b4b4:
Te6edf3uri Tff7b72= Ta5d6ff"Ta5d6ffmeshchatx://docs?Ta5d6ff" Tff7b72+ Te6edf3tail
Te6edf3mock_client Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3mock_clientTff7b72.Td2a8ffsend_str Tff7b72= Te6edf3MagicMockTb4b4b4(Te6edf3return_valueTff7b72=Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4)
Te6edf3mock_appTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffingest_lxm_uri Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3loop Tff7b72= Te6edf3asyncioTff7b72.Td2a8ffnew_event_loopTb4b4b4(Tb4b4b4)
Te6edf3asyncioTff7b72.Td2a8ffset_event_loopTb4b4b4(Te6edf3loopTb4b4b4)
Tff7b72tryTb4b4b4:
Tff7b72async Tff7b72def Td2a8ff_runTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72with Te6edf3patchTb4b4b4(
Ta5d6ff"Ta5d6ffmeshchatx.meshchat.AsyncUtils.run_asyncTa5d6ff"Tb4b4b4,
Te6edf3side_effectTff7b72=Tff7b72lambda Te6edf3coroTb4b4b4: Te6edf3asyncioTff7b72.Td2a8ffcreate_taskTb4b4b4(Te6edf3coroTb4b4b4)Tb4b4b4,
Tb4b4b4)Tb4b4b4:
Tff7b72await Te6edf3mock_appTff7b72.Td2a8ffon_websocket_data_receivedTb4b4b4(
Te6edf3mock_clientTb4b4b4,
Tb4b4b4{Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6fflxm.ingest_uriTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffuriTa5d6ff"Tb4b4b4: Te6edf3uriTb4b4b4}Tb4b4b4,
Tb4b4b4)
Tff7b72await Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)
Te6edf3loopTff7b72.Td2a8ffrun_until_completeTb4b4b4(Te6edf3_runTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72finallyTb4b4b4:
Te6edf3loopTff7b72.Td2a8ffcloseTb4b4b4(Tb4b4b4)
Te6edf3mock_clientTff7b72.Td2a8ffsend_strTff7b72.Td2a8ffassert_calledTb4b4b4(Tb4b4b4)
Te6edf3raw Tff7b72= Te6edf3mock_clientTff7b72.Td2a8ffsend_strTff7b72.Td2a8ffcall_argsTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[T79c0ff0Tb4b4b4]
Tff7b72tryTb4b4b4:
Te6edf3payload Tff7b72= Te6edf3jsonTff7b72.Td2a8ffloadsTb4b4b4(Te6edf3rawTb4b4b4)
Tff7b72except Te6edf3jsonTff7b72.Td2a8ffJSONDecodeErrorTb4b4b4:
Tff7b72return
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6fflxm.ingest_uri.resultTa5d6ff"
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffstatusTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffsuccessTa5d6ff"
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffingest_typeTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffdocs_viewTa5d6ff"
Tf0883e@pytestTff7b72.Td2a8ffmarkTff7b72.Td2a8ffasyncio
Tff7b72async Tff7b72def Td2a8fftest_unknown_meshchatx_host_does_not_fall_through_to_lxmfTb4b4b4(Te6edf3mock_appTb4b4b4)Tb4b4b4:
Te6edf3mock_client Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3mock_clientTff7b72.Td2a8ffsend_str Tff7b72= Te6edf3MagicMockTb4b4b4(Te6edf3return_valueTff7b72=Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4)
Te6edf3mock_appTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffingest_lxm_uri Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Tff7b72with Te6edf3patchTb4b4b4(
Ta5d6ff"Ta5d6ffmeshchatx.meshchat.AsyncUtils.run_asyncTa5d6ff"Tb4b4b4,
Te6edf3side_effectTff7b72=Tff7b72lambda Te6edf3coroTb4b4b4: Te6edf3asyncioTff7b72.Td2a8ffcreate_taskTb4b4b4(Te6edf3coroTb4b4b4)Tb4b4b4,
Tb4b4b4)Tb4b4b4:
Tff7b72await Te6edf3mock_appTff7b72.Td2a8ffon_websocket_data_receivedTb4b4b4(
Te6edf3mock_clientTb4b4b4,
Tb4b4b4{Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6fflxm.ingest_uriTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffuriTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffmeshchatx://not-a-real-host?x=1Ta5d6ff"Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tff7b72await Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0Tb4b4b4)
Te6edf3mock_appTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffingest_lxm_uriTff7b72.Td2a8ffassert_not_calledTb4b4b4(Tb4b4b4)
Te6edf3payload Tff7b72= Te6edf3jsonTff7b72.Td2a8ffloadsTb4b4b4(Te6edf3mock_clientTff7b72.Td2a8ffsend_strTff7b72.Td2a8ffcall_argsTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6fflxm.ingest_uri.resultTa5d6ff"
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffstatusTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6fferrorTa5d6ff"
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffingest_typeTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffunknown_meshchatxTa5d6ff"
Tff7b72assert Te6edf3payloadTb4b4b4[Ta5d6ff"Ta5d6ffhostTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffnot-a-real-hostTa5d6ff"
Tff7b72def Td2a8fftest_telemetry_pack_location_xss_like_strings_return_noneTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787telemetry_utils Tff7b72import Te6edf3Telemeter
Tff7b72assert Te6edf3TelemeterTff7b72.Td2a8ffpack_locationTb4b4b4(Te6edf3latitudeTff7b72=Ta5d6ff"Ta5d6ff<script>Ta5d6ff"Tb4b4b4, Te6edf3longitudeTff7b72=T79c0ff1.0Tb4b4b4) Tff7b72is Tff7b72None
Tff7b72assert Te6edf3TelemeterTff7b72.Td2a8ffpack_locationTb4b4b4(Te6edf3latitudeTff7b72=T79c0ff1.0Tb4b4b4, Te6edf3longitudeTff7b72=Ta5d6ff"Ta5d6ff'Ta5d6ff; DROP--;Ta5d6ff"Tb4b4b4) Tff7b72is Tff7b72None
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────